from typing import List, Union


def calculate_average(numbers: List[Union[int, float]]) -> float:
    """
    计算数字列表的平均值

    Args:
        numbers: 数字列表

    Returns:
        float: 平均值，如果列表为空则返回0.0
    """
    if not numbers:
        return 0.0

    total = sum(numbers)
    return total / len(numbers)
